package com.example.flex.domain;

import  com.example.flex.listener.UserListener;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 用户表实体类
 * @Author: 不是菜鸡爱编程
 * @Date:
 * @Description：
 */
@Table(value = "user",
    onInsert = UserListener.class,
    onUpdate = UserListener.class
)
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "UserEntity",description = "用户表")
public class UserEntity implements Serializable {
    /**
     * 主键
     */
    @Id(keyType = KeyType.Auto)
    @ApiModelProperty("主键")
    private Long id;
    /**
     * 账号
     */
    @ApiModelProperty("账号")
    private String username;
    /**
     * 密码
     */
    @ApiModelProperty("密码")
    private String password;
    /**
     * 昵称
     */
    @ApiModelProperty("昵称")
    private String nickName;
    /**
     * 性别(1男，0女)
     */
    @ApiModelProperty("性别(1男，0女)")
    private Integer gender;
    /**
     * 头像
     */
    @ApiModelProperty("头像")
    private String header;
    /**
     * 手机号
     */
    @ApiModelProperty("手机号")
    private String phone;
    /**
     * 邮箱
     */
    @ApiModelProperty("邮箱")
    private String email;
    /**
     * 状态(0正常，1停用)
     */
    @ApiModelProperty("状态(0正常，1停用)")
    private Integer status;
    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;
    /**
     * 本次登陆日期
     */
    @ApiModelProperty("本次登陆日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime loginDate;
    /**
     * 创建者的id
     */
    @ApiModelProperty("创建者的id")
    private Long createId;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    /**
     * 更新者id
     */
    @ApiModelProperty("更新者id")
    private Long updateId;
    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    /**
     * 逻辑删除列
     */
    @ApiModelProperty("逻辑删除列")
    private String delFlag;
}